Method and system for enabling optimal colorant job programming

ABSTRACT

Method, system, and graphical user interface for enabling optimal;colorant job programming. A graphical user interface displays a plurality of gamut mode selectable features. One or more of the gamut mode selectable features can be selected for image processing of an image. A graphical image can be displayed within the next of the user interface based on image processing of the image, and in response to selection of a gamut mode selectable feature. The resulting displayed graphical image with the user interface can demonstrate to a user the benefit of utilizing additional colorant on the image particular pixels in the graphical image, which can benefit from the additional colorant.

TECHNICAL FIELD

Embodiments are generally related to the field of image processing.Embodiments are also related to machines having print engines such asprinters and/or copier devices and, more particularly, to printer colormanagement in image/text printing or display systems. Embodimentsfurther relate to color gamut extension applications and devices.

BACKGROUND

The color gamut of a printer is a multi-dimensional space of a givenvolume with the axes of the space being set or defined initially by thepigments used in the colorants of the primary colors. Each set of colorprimaries: red, green, blue (RGB) or cyan, magenta, yellow, and black(CMYK) defines a “color space” that includes all colors that can resultfrom any combination of these primaries. The “color space” or “colorgamut” may be quite different for different sets of primaries. A CMYKcolor gamut can intersect an RGB color gamut. Such gamuts, however, aredifferent from one another. That is one gamut or a set of gamuts is nota subset of the other. Thus, RGB may not cover all CMYK colors and viceversa.

In forming multi-color output images on an image-receiving medium, eachof the primary colors can be transferred to the image-receiving mediumin turn. The color gamut is defined by the interaction of the primarycolors and is limited by the total amount of colorant in any combinationthat can be effectively deposited on the image-receiving medium.

BRIEF SUMMARY

The following summary is provided to facilitate an understanding of someof the innovative features unique to the disclosed embodiments and isnot intended to be a full description. A full appreciation of thevarious aspects of the embodiments disclosed herein can be gained bytaking the entire specification, claims, drawings, and abstract as awhole.

It is, therefore, one aspect of the disclosed embodiments to provide foran, improved image processing method and system.

It is another aspect of the disclosed embodiments to provide for animproved method and system for printer color management in image/textprinting or display systems.

It is yet another aspect of the disclosed embodiments to provide for amethod and system that provides a user with a better understanding ofwhat pixels in an image-processed image will benefit from an extendedgamut colorant.

The aforementioned aspects and other objectives and advantages can nowbe achieved as described herein. In one example embodiment, a method canbe implemented for enabling optimal colorant job programming. Operationscan be implemented, for example, for providing a user interface thatdisplays a plurality of gamut mode selectable features, selecting atleast one gamut mode selectable feature among the gamut mode selectablefeatures for image processing of an image, and displaying a graphicalimage based on at least one some image processing of the image inresponse to selecting a gamut mode selectable feature, such that theresulting displayed graphical image demonstrates the benefit ofutilizing additional colorant on the image. For example, pixels in thedisplayed graphical image, which can benefit from the additionalcolorant, can be highlighted to demonstrate this benefit.

In some example embodiments, a step or operation can be implemented forreleasing the image or re-programming the image with different colorsettings based on the displayed graphical image. In another exampleembodiment, operations can be implemented including image processing ofthe image by rendering all color spaces with respect to the image to,for example, a multi-color print space (e.g., 5 color print space), andthen comparing the multi-color print space to a possible CMYK printspace to determine the particular pixels benefiting with a particularprint job/page.

The disclosed approach thus can provide a method and/or system, whichenables accurate user understanding of the pixels in a RIPed image thatcan benefit from an extended gamut colorant. All the color spaces in thePDL (e.g., RGB, CMYK, Spots, Separation, DeviceN) can be rendered by theRIP (Raster Image Processor) containing all the RIP's image processingcomplexity to the 5 color print space. This print space can then becompared to the possible CMYK print space to determine the benefitingpixels within a job/page.

Various embodiments may be implemented via a device or system comprisinga processor and a memory. The processor and memory are configured toperform one or more of the above described method operations. Otherembodiments may be implemented via a computer readable storage mediumhaving computer program instructions stored thereon that are arranged toperform one or more of the method operations described above andelsewhere in this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying figures, in which like reference numerals refer toidentical or functionally-similar elements throughout the separate viewsand which are incorporated in and form a part of the specification,further illustrate the present invention and, together with the detaileddescription of the invention, serve to explain the principles of thepresent invention.

FIG. 1 illustrates a schematic diagram of a digital printing system thatcan be utilized in accordance with an example embodiment;

FIG. 2 illustrates another GUI for enabling optimal colorant jobprogramming in accordance with an example embodiment;

FIG. 3 illustrates interactive diagrams displayable via a GUI inaccordance with an example embodiment;

FIG. 4 illustrates a flow diagram depicting logical operations of amethod for enabling optimal colorant job programming in accordance withan example embodiment;

FIG. 5 illustrates another flow diagram depicting logical operations ofa method for enabling optimal colorant job programming in accordancewith an example embodiment;

FIG. 6 illustrates a system for data-processing apparatus or system thatcan be utilized to implement instructions for enabling optimal colorantjob programming, in accordance with an example embodiment; and

FIG. 7 illustrates a schematic view of a software system including amodule, an operating system, and a user interface, in accordance with anexample embodiment.

DETAILED DESCRIPTION

The particular values and configurations discussed in these non-limitingexamples can be varied and are cited merely to illustrate one or moreembodiments and are not intended to limit the scope thereof.

Subject matter will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, specific example embodiments.Subject matter may, however, be embodied in a variety of different formsand, therefore, covered or claimed subject matter is intended to beconstrued as not being limited to any example embodiments set forthherein; example embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware, or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to beinterpreted in a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood, at least in part, from usagein context. For example, terms such as “and”, “or”, or “and/or” as usedherein may include a variety of meanings that may depend, at least inpart, upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B, or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B, or C, hereused in the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures, orcharacteristics in a plural sense. Similarly, terms such as “a”, “an”,or “the”, again, may be understood to convey a singular usage or toconvey a plural usage, depending at least in part upon context. Inaddition, the term “based on” may be understood as not necessarilyintended to convey an exclusive set of factors and may, instead, allowfor existence of additional factors not necessarily expressly described,again, depending at least in part on context.

FIG. 1 illustrates a schematic diagram of a computerized device that canbe implemented as a printing device or system 204, which can be usedwith systems and methods herein and can comprise, for example, aprinter, copier, multi-function machine, multi-function device (MFD),etc. The printing device/system 204 can include many of the componentsmentioned above (e.g., printer, copier, MFD, etc.) and in someembodiments at least one marking device (print engine) 210 operativelyconnected to a computerized device 224 (e.g., controller and/orprocessor), a media path 216 positioned to supply sheets of media from asheet supply 214 to the marking device(s) 210, etc. After receivingvarious markings from the printing engine(s), the sheets of media canoptionally pass to a finisher 208 which can fold, staple, sort, etc.,the various printed sheets. Also, the printing device 204 can include atleast one accessory functional component (such as a scanner/documenthandler 212, etc.) that also operates on the power supplied from theexternal power source 228 (through the power supply 222).

Therefore, exemplary systems and printing devices herein can comprise acomputerized device 224 that receives a print job. The computerizeddevice 224 can evaluate the print job to identify job parameter settingsand associated sources of such job parameter settings. A non-transitorycomputer storage medium 220 is operatively (meaning directly orindirectly) connected to the computerized device 224, and thecomputerized device 224 transmits the job parameter settings and theassociated sources to a database stored within the non-transitorycomputer storage medium 220. Each print job can have its own separatedatabase.

In addition, a marking device 210 can be operatively connected to thecomputerized device 224. The computerized device 224 transmits the printjob to cause the marking device 210 to print the print job. Also, agraphic user interface 236 is operatively connected to the computerizeddevice 224, and the graphic user interface 236 provides access to thedatabase to allow a user to view the job parameter settings and theassociated sources, and/or change the job parameter settings. Thegraphic user interface 236 provides access to the database before orafter the marking device 210 prints the print job.

The computerized device 224 can raster image processes (RIPs) the printjob before printing the print job using the marking device 210. Further,the computerized device 224 can identify “potential” settings andsources and “final” settings and sources of the job parameter settingsand the associated sources when evaluating the print job. These finalsettings and sources are the ones actually used to perform the rasterimage processing (RIPing); however, all the potential setting andsources are all maintained in the database to provide a pre-RIPing printjob preparation history. Further, the database maintains the potentialsetting and sources and the final settings and sources before and afterthe marking device 210 prints the print job to allow user diagnosis,etc.

Specifically, these “associated sources” can include, for example: aprint job property attributes source; a print job ticket attributessource; a print queue attributes source; and a page exception attributessource, etc. Similarly, the “job parameter settings” can include, forexample: print job properties values; print job ticket values; printqueue values; and page exception source values, etc.

While some exemplary structures are illustrated in the attacheddrawings, those ordinarily skilled in the art would understand that thedrawings are simplified schematic illustrations and that the claimspresented below encompass many more features that are not illustrated(or potentially many less) but that are commonly utilized with suchdevices and systems. Therefore, applicants do not intend for the claimspresented below to be limited by the attached drawings, but instead theattached drawings are merely provided to illustrate a few ways in whichthe claimed features can be implemented.

Many computerized devices are discussed above. Computerized devices thatinclude chip-based central processing units (CPU's), input/outputdevices (including graphic user interfaces (GUI), memories, comparators,processors, etc.) are well-known and readily available devices producedby manufacturers such as Dell Computers, Round Rock Tex., USA and AppleComputer Co., Cupertino Calif., USA. Such computerized devices commonlyinclude input/output devices, power supplies, processors, electronicstorage memories, wiring, etc., the details of which are omittedherefrom to allow the reader to focus on the salient aspects of thesystems and methods described herein. Similarly, scanners and othersimilar peripheral equipment are available from Xerox Corporation,Norwalk, Conn., USA and the details of such devices are not discussedherein for purposes of brevity and reader focus.

The terms printer or printing device as used herein encompasses anyapparatus, such as a digital copier, bookmaking machine, facsimilemachine, multi-function machine, etc., which performs a print outputtingfunction for any purpose. The details of printers, printing engines,etc., are well-known and are not described in detail herein to keep thisdisclosure focused on the salient features presented. The systems andmethods herein can encompass systems and methods that print in color,monochrome, or handle color or monochrome image data. All foregoingsystems and methods are specifically applicable to electrostatographicand/or xerographic machines and/or processes.

A raster image processor (RIP) is a component used in a printing systemthat produces a raster image also known as a bitmap. The bitmap is thensent to a printing device for output. Raster image processing is theprocess that turns vector digital information into a high-resolutionraster image.

It is helpful to understand the terminology that is used in reference toprinting in this context. The term “page” refers to the datacorresponding to the content on one page of the finished document. Theterm “sheet” refers to a single piece of print media, which can beprinted with more than one page. Sheets also have two sides and can havepages printed on one or both sides. A “document” comprises a group ofone or more sheets having one or more pages printed thereupon.

The term “color gamut” as utilized herein can refer to the entire rangeof colors available on a particular device such as a monitor or printer.A monitor, which displays RGB signals, typically has a different colorgamut than output by a printer and greater color gamut than a printer,which uses CMYK inks. Thus, when a color is “out of gamut,” it cannot beproperly converted to the target device, for example, to a differenttype of printer.

In some example embodiments, the digital printing system shown in FIG. 1can be configured with the capability of adding a fifth color forprinting. That is, the available colorants are Orange, Green, and Blue.When job programming an extended gamut job, two destination profiles canbe applied to the print job:

1. For printing to the extended gamut (e.g., CMYK+Orange)

2. For printing to the base gamut (CMYK)

On these extended gamut print engines, a server or other computing canrequire the capability to visually display how the use of an extendedgamut colorant mode will provide improved IQ via a larger gamut on acustomer's job without printing two proofs of the job with different jobprogramming. Use of the 5th colorant is expensive as compared to theCMYK colorants.

Therefore, an approach can be implemented as discussed in greater detailbelow, which can reveal to a user whether the use of, for example, the5th colorant will be beneficial. Such an approach can be implemented inthe context of a display that comprehends all the input image types(e.g., RGB source, CMYK source, deviceN, Spot) within the PDL and thejob programming (e.g., Spot rendering with the CMYK colorants or theCMYK+Extended Gamut colorant).

FIG. 2 illustrates a GUI (Graphical User Interface) 60, which can beutilized for jobs in a Held state (e.g., fully job programmed) toinitiate the Gamut Check feature. For the extended gamut mode printsystem, the feature only becomes active when the job is programmed forextended gamut printing. When a user activates this feature, the job canbe sent through and processed by a low-resolution fully featureddecomposer. The resultant CMYK+Extended Gamut image(s) can be convertedto, for example, CIELAB. The gamut boundary of the job programmed4-color profile can be determined in the CIELAB space. A threshold canthen be added to the gamut boundary (e.g. 2 ΔE). The resultant boundarycan be compared to the CIELAB values for the pixels composing the RIPedimages (i.e., images subject to an RIP (Raster Image Processor)). Pixelvalues lying outside the boundary are determined to benefit from the useof the extended gamut colorant. The information can be communicated tousers via a display of the RIPed image with the benefiting pixelshighlighted.

Note that the term CIELAB (CIE L*a*b*) is a color space specified by theInternational Commission on Illumination (French CommissionInternationale de I'éclairage, hence its CIE initialism). CIELABdescribes all the colors visible to the human eye and was created toserve as a device-independent model to be used as a reference. The threecoordinates of CIELAB represent the lightness of the color (L*=0 yieldsblack and L*=100 indicates diffuse white specular white may be higher),its position between red/magenta and green (a*, negative values indicategreen while positive values indicate magenta) and its position betweenyellow and blue (b*, negative values indicate blue and positive valuesindicate yellow). The asterisk (*) after L, a, and b are pronounced starand are part of the full name, since they represent L*, a*, and b*, todistinguish them from Hunter's L, a, and b, described below.

Since the L*a*b* model is a three-dimensional model, it can berepresented properly only in a three-dimensional space. Two-dimensionaldepictions include chromaticity diagrams: sections of the color solidwith a fixed lightness. It is crucial to realize that the visualrepresentations of the full gamut of colors in this model are neveraccurate; they are there just to help in understanding the concept.Because the red-green and yellow-blue opponent channels are computed asdifferences of lightness transformations of (putative) cone responses,CIELAB is a chromatic value color space.

Note that in color management, an ICC profile is a set of data thatcharacterizes a color input or output device, or a color space,according to standards promulgated by the International Color Consortium(ICC). Profiles describe the color attributes of a particular device orviewing requirement by defining a mapping between the device source ortarget color space and a profile connection space (PCS). This PCS iseither CIELAB (L*a*b*) or CIEXYZ. Mappings can be specified utilizingtables, to which interpolation can be applied, or through a series ofparameters for transformations.

The GUI 60 shown in FIG. 2 can offer a gamut checker option 74 that whenselected takes an image and compares how that image will print with twodifferent ICC profiles. The ICC profiles supported are for 4 and 5 inkformats. Either one can be placed in either ICC file field. The finaloutput will display the image and a modified version of the imageshowing a comparison of the image rendered through each profile. Themodified image consists of the differences of the larger gamut profilevs. the smaller. The colors that show as, for example, fluorescent greenare areas where the smaller gamut profile color will be out of gamut.

When the gamut checker option 74 is selected, the job is submitted forprocessing with the following special parameter set:

-   -   1. Attr_Save        Location=Xerox-PS/data/gamutthumbnails/Job_“JobID”/CMYKK—location        for CMYKX JPEG images    -   2. Attr_ProcessColorants=(Cyan, Magenta, Yellow, Black,        “5thcolorantname”)—color planes to be used when decomposing the        job    -   3. Attr_ProofType=proof_gamutcompare—job type    -   4. Attr_SaveFormat=JPEGCompareFormat—JPEG format for processing    -   5. Attr_Resolution=75, 75—low resolution for performance and        thumbnail display

When the GUI observes the JPEG images in the save location, the GUI caninvoke the Gamut Check Library with the following information:

-   -   1. jobID—for thumbnail location    -   2. CMYK and CMYKX destination profiles    -   3. Output location for resultant comparison image

The Gamut Check Library can perform the following operations:

-   -   1. Obtain CMYKX low resolution image(s)    -   2. Using the CMYKX profile, produce a print simulation image for        visual display and job identification        -   output written to            Xerox-PS/data/gamutthumbnails/Job_“JobID”/CMYKX2RGB    -   3. Establish the colors of the image derived from the CMYKX low        resolution image, i.e., a complete histogram of all colors in 3D        color space    -   4. Retrieve or Derive the gamut of the CMYK profile    -   5. Map the histogram of colors through the CMYK profile forcing        compression of the CMYKX color space    -   6. Generate the color samples difference between CMYK and CMYKX        colors, i.e., the colors in the space between the two gamuts    -   7. The difference color set are those colors benefiting from the        use of the larger gamut profile, e.g., CMYKX    -   8. The difference color set is mapped through the CMYKX2RGB        image highlighting the affected pixels. The output is written to        Xerox-PS/data/gamutthumbnails/Job_“JobID”/differencethumbnail

When completed, the observant GUI displays the resultant image. Based onthe displayed image(s), the user can release the job or re-program thejob with different color settings to yield a different cost/IQ tradeoff.The GUI 60 shown in FIG. 2 can thus enable optimal colorant jobprogramming. The GUI 60 can be utilized to implement a variety of jobcolorant operations and displays various GUI widgets, icons, and buttonsthat a user may select to achieve certain operations. For example, whena user selects a job icon 62, the status of various rendering jobs(e.g., print jobs) are shown as indicated at display section 65 of theGUI 60. A graphical display area 61 in GUI 60 can list active jobs withrespect to a job header or title 63

Examples of job status as shown in display section 65 of GUI 60 include“Held by Operator” and “Faulted”. For example, a Job ID 54 is shown ashaving a “Held by Operator” status and a Job ID 55 is shown as having a“Faulted” status. Other icons or widgets displayed in GUI 60 include aQueue icon 64 which when selected by a user lists a current queue ofjobs. An icon 66 when selected by a user can list saved job. Icon 68when selected by a user can initiate spot color operations with respectto a particular job (or jobs). Icon 70 can be selected by a user toinitiate color profiles with respect to particular jobs.

Additionally, icon 72 can be selected by a user to initiated user TRCs(Tone Reproduction Curves). Note that TRC or tone reproduction curveinvolves tone reproduction, which is the mapping of scene luminance andcolor to print reflectance or display luminance with aim of subjectively“properly” reproducing brightness and “brightness differences.” A tonereproduction curve is often referred to by its initials, TRC, and the“R” is sometimes said to stand for “response” as in tone response curve.Thus, the term TRCs can refer to tone reproduction curves or toneresponse curves.

Other GUI widgets or buttons displayable by GUI 60 include, for example,a preflight icon/widget 77, which when selected by a user can initiatevarious preflight operations, and an icon/widget 74 for a gamut checkeroption, which when selected by a user can display another GUI displayarea (e.g., a dialog box) such as the described gamut checker. The gamutchecker 74 can in some embodiments be implemented in the context of adrop down list with additional options that can be selected, such as,for example, ignore low L*, saving generated files, and so on.

Note that examples of preflight operations and related methods andsystems, which can be initiated by selecting the preflight icon/widget77 shown in FIG. 2 are disclosed in U.S. Pat. No. 9,070,076 entitled“Spot Color Preflight for Extended Gamut Printing,” which issued on Jun.30, 2015 to Smith et al. U.S. Pat. No. 9,070,076 is incorporated hereinby reference in its entirety.

FIG. 3 illustrates an interactive diagram 80 displayable via a GUI inaccordance with an example embodiment. In the example depicted in FIG.4, a header 82 displays information associated with a particular job as“Job ID 58 page 1 of 12”. At the left side of the interactive diagram 80is displayed a series of thumbnail images 86 and their respective pagenumbers. For example, the “Page 1” thumbnail image is followedimmediately by the “Page 2” thumbnail image and so on. A larger versionof the Page 1 thumbnail image is shown to the right of thumbnail images86 as job image 88. To the right of the job image 88 is an image 90,which is a version of the job image 88 with highlighted color regionsbenefiting from, for example, an orange colorant. The image 90 is theresulting displayed graphical image that demonstrates to a user thebenefit of utilizing additional colorant on the job image 88. That is,particular pixels in the graphical image 88 can benefit from additionalcolorant, which is highlighted in the resulting image 90 to demonstratethis benefit.

Above the images 88 and 90 are displayed an information “i” icon 84 justto the left of a displayed box 85, which displays colorant textinformation for a user such as, for example, “the fluorescent greenregion is where the 5 colorant provides value”.

FIG. 4 illustrates a flow diagram depicting logical operations of amethod 100 for enabling optimal colorant job programming in accordancewith an example embodiment.

As shown in FIG. 4, a user 102 can right “click” on a job. Thisoperation is indicated by arrow 116. The user may also select as shownat arrow 118 the “Gamut Checker” icon/widget 74 depicted in FIG. 2.Then, as depicted at block 104, an operation can be implemented in whichthe job is paused and held in a queue by the GUI.

Various operations can then be implemented at this point, such asdetermining if “job info Attr_ProcessColorants” have 5 members” asindicated by arrow 120. If the answer to this test is “yes,” then asshown at arrow 124, the “Gamut Checker” selection is displayed. Asindicated at arrow 126, “PrintNext” can be invoked for the gamut checkerjob. As indicated by arrow 128, an operation can be implemented to

-   set BForm=None, Imposition=None, output    location=Xerox-PS/data/gamutthumbnails/Job_“JobID”/CMYKX

Additionally, as indicated by arrow 128, the following operation can beimplemented:

-   submit job (jobID, job_Attrs, SaveFormat=JPEGCompareFormat,    ProofType=proof_gamutcompare)

Note that Gamut Checker operations can include the use of a comparisonlibrary as shown at block 106, a JC/JPM (Job Chooser/Job Pool Manager)as, indicated at block 108, and an FOM (Facilities Object Manager) asdepicted at block 110. The JC (Job Chooser) can ensure that a job hasbeen programmed correctly prior to being sent to a RIP. The JPM (JobPool Manager) can function as a scheduler that places jobs in a priorityorder. The FOM (Facilities Object Manager) can obtain a job from the JCand build tasks for different modules in the stream. A decomposerfunctionality is indicated at block 112 followed by an operation asshown at block 114 for configuring a server (such as describedpreviously). The server.config block 114 represents a configuration filethat can be maintained at a server and processed by the server, whichdescribes the configuration of a DFE (Digital Front End). Theserver.config operation depicted at block 114 can provide basic setupinformation that drives, for example, a GUI such as the GUI 60 shown inFIG. 2. The operation (and file) indicated at block 114 describes how,for example, a controller can be set up for a particular print engine.

A job task operation is indicated by arrow 132, followed by a decomposertask operation as shown at block 134. The decomposer shown at block 112can be implemented as a CMYK 75 dpi decomposer full featured color RIP(Raster Image Processor) that is capable of utilizing source profiles,destination profiles (CMYK and CMYKX), JSON spot file, and SCS. Adecomposer task operation associated with the decomposer indicated atblock 112 is represented by the arrow 134 shown between block 110 (FOM)and block 112 (decomposer). Arrow 136 represents the production of CMYKXDRI JPEG 75 dpi image. Arrows 138 and 140 represent additional RIPcomplete operations.

FIG. 5 illustrates a continuation of the flow logic from FIG. 4. Thatis, FIG. 5 depicts a flow diagram depicting logical operations of amethod 101 for enabling optimal colorant job programming in accordancewith an example embodiment. The method 101, however, shown in FIG. 5 isa continuation of the method 100 depicted in FIG. 4. Note that in FIGS.4-5, identical or similar parts or elements are generally indicated byidentical reference numerals. For example, blocks 102, 104, 106, 108,110, 112, and 114 shown in FIGS. 4-5 indicate the same general elementsor operations. The method 101 shown in FIG. 5 thus represents additionaloperations, which can be implemented with respect to the operationsshown in FIG. 4. For example, the arrow 150 shown as extending betweenblock 104 (“Paused, Held by Queue GUI”) and block 106 (“ComparisonLibrary”) involves the following operation:

-   request comparison (jobID, destination profiles, output    location=Xerox-PS/data/gamutthumbnails/Job_“JobID”/differencethumbnail)

Following processing of the operation indicated by arrow 152, CMYKX DRIJPEGs can than acquire an additional 75 dpi RGB image produced from theaforementioned CMYKX images. Then, as shown at arrow 154, the followingoperation can be implemented:

-   Write into output    location=Xerox-PS/data/gamutthumbnails/Job_“JobID”/CMYK2RGB

Thereafter, as indicated by arrow 155, a threshold value (i.e., GamutCheck) can be obtained. Note that the operation associated with arrow155 extends from the comparison library block 106 to the serverconfiguration block 114. An operation can be implemented as indicated byarrow 156 to determine CMYKX pixels outside of a CMYK destinationprofile gamut that are above the threshold value. Next, as indicated byarrow 158, a difference RGB 75 dpi JPEG image can be produced and thefollowing operation implemented:

-   output    location=Xerox-PSdata/gamutthumbnails/Job_“JobID”/differencethumbnail

The image generation can then be completed, as shown at arrow 160 and anRGB and dE thumbnail displayed, as shown at arrow 162.

Note that in some embodiments, computer program code for carrying outoperations of the disclosed embodiments may be written in an objectoriented programming language (e.g., Java, C#, C++, etc.). Such computerprogram code, however, for carrying out operations of particularembodiments can also be written in conventional procedural programminglanguages, such as the “C” programming language or in a visuallyoriented programming environment, such as, for example, Visual Basic.

The program code may execute entirely on the user's computer, partly onthe user's computer, as a stand-alone software package, partly on theuser's computer and partly on a remote computer, or entirely on theremote computer. In the latter scenario, the remote computer may beconnected to a user's computer through a local area network (LAN) or awide area network (WAN), wireless data network e.g., Wi-Fi, Wimax, IEEE802.xx, and cellular network, or the connection may be made to anexternal computer via most third party supported networks (e.g., throughthe Internet via an Internet Service Provider).

The embodiments are described at least in part herein with reference toflowchart illustrations and/or block diagrams of methods, systems, andcomputer program products and data structures according to embodimentsof the invention. It will be understood that each block of theillustrations, and combinations of blocks, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general-purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the various block orblocks, flowcharts, and other architecture illustrated and describedherein.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe block or blocks.

FIGS. 6-7 are provided as exemplary diagrams of data-processingenvironments in which embodiments may be implemented. It should beappreciated that FIGS. 6-7 are only exemplary and are not intended toassert or imply any limitation with regard to the environments in whichaspects or embodiments of the disclosed embodiments may be implemented.Many modifications to the depicted environments may be made withoutdeparting from the spirit and scope of the disclosed embodiments.

As illustrated in FIG. 6, some embodiments may be implemented in thecontext of a data-processing system 400 that can include one or moreprocessors such as a CPU (Central Processing Unit) 341, a memory 342, acontroller 343 (e.g., an input/output controller), a peripheral USB(Universal Serial Bus) connection 347, a keyboard 344 (e.g., a physicalkeyboard or a touch screen graphically displayed keyboard), an inputcomponent 345 (e.g., a pointing device, such as a mouse, track ball, pendevice, which may be utilized in association or with the keyboard 344,etc.), a display 346, and in some cases, an RIP (Raster Image Processor)332, which may be implemented in the context of software and/orhardware. For example, in some embodiments, the RIP may be stored as amodule in memory 342 with raster image processingoperations/instructions, which are then subject to processing by the CPU341 and/or other another processor or processors if necessary. In someexample embodiments, the RIP 332 can be implemented either as a softwarecomponent of an operating system or as a firmware program executed on amicroprocessor inside a printer, though for high-end typesetting,standalone hardware RIPs are sometimes used.

Data-processing system 400 may be, for example, a client computingdevice (e.g., a client PC, laptop, tablet computing device, etc.), whichcommunicates with peripheral devices (not shown) via a client-servernetwork (e.g., wireless and/or wired). In another embodiment, thedata-processing system may be a server in the context of a client-servernetwork or other server-based network implementation.

As illustrated, the various components of data-processing system 400 cancommunicate electronically through a system bus 351 or other similararchitecture. The system bus 351 may be, for example, a subsystem thattransfers data between, for example, computer components withindata-processing system 400 or to and from other data-processing devices,components, computers, etc. Data-processing system 400 may beimplemented as, for example, a server in a client-server based network(e.g., the Internet) or can be implemented in the context of a clientand a server (i.e., where aspects are practiced on the client and theserver). Data-processing system 400 may be, for example, a standalonedesktop computer, a laptop computer, a Smartphone, a pad computingdevice, a server, and so on. In some example embodiments, thedata-processing system 400 may implement all or a part of thedevice/system shown in FIG. 1.

FIG. 7 illustrates a computer software system 450 for directing theoperation of the data-processing system 400 shown in FIG. 6. Softwareapplication 454, stored for example in memory 342, generally includes akernel or operating system 451 and a shell or interface 453. One or moreapplication programs, such as software application 454, may be “loaded”(i.e., transferred from, for example, memory 342 or another memorylocation) for execution by the data-processing system 400. Thedata-processing system 400 can receive user commands and data throughthe interface 453; these inputs may then be acted upon by thedata-processing system 400 in accordance with instructions fromoperating system 451 and/or software application 454. The interface 453,in some embodiments, can serve to display results, whereupon a user maysupply additional inputs or terminate a session.

The software application 454 can include one or more modules such as,for example, a module 452 (or a module composed of a group of modules),which can, for example, implement instructions or operations such asthose described herein. Examples of instructions that can be implementedby module 452 include the various steps or operations described withrespect to FIGS. 6-7 and elsewhere herein. Another example of a modulethat can be provided by module 452 is the RIP 332 depicted in FIG. 6,which may be stored in memory 342 and processed by, for example, the CPU341 and/or another processor.

The following discussion is intended to provide a brief, generaldescription of suitable computing environments in which the system andmethod may be implemented. Although not required, the disclosedembodiments will be described in the general context ofcomputer-executable instructions, such as program modules being executedby a single computer. In most instances, a “module” constitutes asoftware application. However, a module may also be composed of, forexample, electronic and/or computer hardware or such hardware incombination with software. In some cases, a “module” can also constitutea database and/or electronic hardware and software that interact withsuch a database.

Generally, program modules include, but are not limited to, routines,subroutines, software applications, programs, objects, components, datastructures, etc., that perform particular tasks or implement particularabstract data types and instructions. Moreover, those skilled in the artwill appreciate that the disclosed method and system may be practicedwith other computer system configurations, such as, for example,hand-held devices, multi-processor systems, data networks,microprocessor-based or programmable consumer electronics, networkedPCs, minicomputers, mainframe computers, servers, and the like.

Note that the term module as utilized herein can refer to a collectionof routines and data structures that perform a particular task orimplement a particular abstract data type. Modules maybe composed of twoparts: an interface, which lists the constants, data types, variable,and routines that can be accessed by other modules or routines; and animplementation, which is typically private (accessible only to thatmodule) and which includes source code that actually implements theroutines in the module. The term module may also simply refer to anapplication, such as a computer program designed to assist in theperformance of a specific task, such as word processing, accounting,inventory management, etc. Thus, the various instructions or steps suchas described herein, can be implemented in the context of such a moduleor modules, sub-modules, and so on.

FIGS. 6-7 are thus intended as examples and not as architecturallimitations of disclosed embodiments. Additionally, such embodiments arenot limited to any particular application or computing or dataprocessing environment. Instead, those skilled in the art willappreciate that the disclosed approach may be advantageously applied toa variety of systems and application software. Moreover, the disclosedembodiments can be embodied on a variety of different computingplatforms, including, for example, Windows, Macintosh, UNIX, LINUX, andthe like.

It will be appreciated that variations of the above-disclosed and otherfeatures and functions, or alternatives thereof, may be desirablycombined into many other different systems or applications. It will alsobe appreciated that various, presently unforeseen or unanticipatedalternatives, modifications, variations or improvements therein may besubsequently made by those skilled in the art which are also intended tobe encompassed by the following claims.

1. A method for enabling optimal colorant job programming, comprising:selecting with at least one gamut checker option associated with a gamutchecker at least one gamut mode selectable feature from among aplurality of gamut mode selectable features for image processing of animage; displaying a graphical image based on at least one some imageprocessing of said image in response to said selecting said at least onegamut mode selectable feature, wherein said displayed graphical imagedemonstrates a benefit of utilizing additional colorant on said image,wherein particular pixels in said graphical image that can benefit fromsaid additional colorant are highlighted to demonstrate said benefit;and thereafter rendering said graphical image via an MFD (Multi-FunctionDevice) comprising a combined photocopier, printer and scanner, said MFDhaving at least one marking device in a response to a user input withrespect to said MFD.
 2. The method of claim 1 further comprisingdisplaying a user interface, which displays said plurality of gamut modeselectable features in a first window of said user interface and saidgraphical image in another window of said user interface.
 3. The methodof claim 2 further comprising re-programming said image with differentcolor settings based on said displayed graphical image.
 4. The method ofclaim 1 further comprising: image processing of said image by renderingat least one color space with respect to said image to at least onecolor print space.
 5. The method of claim 1 further comprising:comparing at least one print space to a possible CMYK print space todetermine said particular pixels benefiting with a particular printjob/page.
 6. The method of claim 1 further comprising: image processingof said image by rendering all color spaces with respect to said imageto at least one color print space; and comparing said at least one colorprint space to a possible CMYK print space to determine said particularpixels benefiting with a particular print job/page.
 7. The method ofclaim 1 wherein said at least one gamut mode selectable featurecomprises printing CMYK with varying ink drop sizes to provide anindication of a benefit of utilizing greater or smaller ink drop sizes.8. A system for enabling optimal colorant job programming, said systemcomprising: at least one processor; and a computer-usable mediumembodying computer program code, said computer-usable medium capable ofcommunicating with said at least one processor, said computer programcode comprising instructions executable by said at least one processorand configured for: selecting with at least one gamut checker optionassociated with a gamut checker at least one gamut mode selectablefeature from among a plurality of gamut mode selectable features forimage processing of an image; displaying a graphical image based on atleast one some image processing of said image in response to saidselecting said at least one gamut mode selectable feature, wherein saiddisplayed graphical image demonstrates a benefit of utilizing additionalcolorant on said image, wherein particular pixels in said graphicalimage that can benefit from said additional colorant are highlighted todemonstrate said benefit; and thereafter rendering said graphical imagevia an MFD (Multi-Function Device) comprising a combined photocopier,printer and scanner, said MFD having at least one marking device in aresponse to a user input with respect to said MFD.
 9. The system ofclaim 8 wherein said instructions are further configured for displayinga user interface, which displays said plurality of gamut mode selectablefeatures in a first window of said user interface, and said graphicalimage in another window of said user interface.
 10. The system of claim8 wherein said instructions are further configured for releasing saidimage.
 11. The system of claim 8 wherein said instructions are furtherconfigured for: image processing of said image by rendering at least onecolor space with respect to said image to at least one color printspace.
 12. The system of claim 8 wherein said instructions are furtherconfigured for: comparing at least one print space to a possible CMYKprint space to determine said particular pixels benefiting with aparticular print job/page.
 13. The system of claim 8 wherein saidinstructions are further configured for: image processing of said imageby rendering all color spaces with respect to said image to at least onecolor print space; and comparing said at least one multi color printspace to a possible CMYK print space to determine said particular pixelsbenefiting with a particular print job/page.
 14. The system of claim 8wherein said at least one gamut mode selectable feature comprisesprinting CMYK with varying ink drop sizes to provide an indication of abenefit of utilizing greater or smaller ink drop sizes.
 15. A graphicaluser interface for enabling optimal colorant job programming, saidgraphical user interface produced by an application program operating ona computing device having an electronic display, comprising: a firstapplication program window presented on the electronic display, thefirst application program window being generated by the applicationprogram operating on the computing device, wherein the first applicationprogram window displays at least one gamut mode selectable feature fromamong a plurality of gamut mode selectable features for image processingof an image; a second application program window presented on theelectronic display, the second application program window beinggenerated by the application program operating on the computing device,wherein the second application program window displays a graphical imagebased on at least one some image processing of said image in response tosaid selecting with at least one gamut checker option associated with agamut checker, said at least one gamut mode selectable feature, whereinsaid displayed graphical image demonstrates a benefit of utilizingadditional colorant on said image, wherein particular pixels in saidgraphical image that can benefit from said additional colorant arehighlighted to demonstrate said benefit; and thereafter rendering saidgraphical image via an MFD (Multi-Function Device) comprising a combinedphotocopier, printer and scanner, said MFD having at least one markingdevice in a response to a user input with respect to said MFD.
 16. Thegraphical user interface of claim 15 wherein said image is released orre-programmed with different color settings based on said displayedgraphical image to yield a different cost tradeoff.
 17. The graphicaluser interface of claim 15 wherein image processing of said imageincludes rendering at least one color space with respect to said imageto at least one color print space.
 18. The graphical user interface ofclaim 15 wherein at least one print space is compared to a possible CMYKprint space to determine said particular pixels benefiting with aparticular print job/page.
 19. The graphical user interface of claim 15wherein: image processing of said image includes rendering all colorspaces with respect to said image to at least one color print space; andsaid at least one multi color print space is compared to a possible CMYKprint space to determine said particular pixels benefiting with aparticular print job/page.
 20. The method of claim 15 wherein said atleast one gamut mode selectable feature includes a feature forinitiating printing CMYK with varying ink drop sizes to provide anindication of a benefit of utilizing greater or smaller ink drop sizes.